//
// Created by wujehy on 2020/8/3.
//

#ifndef AUTH_RAFT_LISTERNERBASE_H
#define AUTH_RAFT_LISTERNERBASE_H

/**
 * @brief 监听器基类
 */
class ListernerBase
{
protected:
    /**
     * @brief 监听器的类型
     */
    enum Type
    {
        TestOneListerner = 1, ///< 测试 的监听器 1
        TestTwoListerner, ///< 测试的监听器 2
    };
public:
    /**
     * @brief 实现的监听器类型
     * @return
     */
    virtual int type() = 0;

    /**
     * @brief 监听器被触发的时候出发的接口
     */
    virtual void update() = 0;

    /**
     * @brief 析钩器
     */
    virtual ~ListernerBase()
    {

    }

    /**
     * @brief 全局初始化触发器
     */
    virtual void init_finished() = 0;
};

#endif //AUTH_RAFT_LISTERNERBASE_H
